1. Field of the Invention
The invention relates to disk array controllers, and more particularly, to disk array controllers that perform on-line reconfiguration of a disk array.
2. Description of the Related Art
With the proliferation of low cost personal computers, local area networks (LANs) have become very popular as a communications networks that connect to a large number of personal computers or workstations. A LAN typically includes one or more file servers, which act as storage hubs for data, with copies of the data being transferred to the workstations on demand and updated data being returned for storage. In many applications, the data on the file servers must be made accessible on a continuous basis. If a file server is taken "off-line" for any reason, the data on the file server would become temporarily unavailable, which may disrupt business operations.
To achieve the optimal price/performance ratio file servers are implemented with a collection of relatively smaller and inexpensive hard disk drives. However, with the increased number of disk drives used, the failure rate increases dramatically. Several solutions to the data failure problem are available. The simplest solution is to provide completely redundant disk drives, which is referred to as mirroring. One problem with mirroring is storage efficiency, as one half of the available capacity is used for redundancy. Other more efficient solutions have been proposed, such as those in David A. Patterson et al., "A Case for Redundant Arrays of Inexpensive Disks (RAID)," Report No. UCB/CSD 87/391 (1987). Various RAID protection schemes are described. The RAID 1 architecture refers to the traditional mirrored disk approach. In the RAID 4 architecture, parity disks are used for storing parity information which are used to check for errors in accessed data. The RAID 5 architecture is an improvement on the RAID 4 architecture, with the parity information distributed across all the disks to achieve greater parallelism.
As a user's data storage requirements increase, the total storage capacity on the LAN must be increased. One method of increasing storage capacity on the LAN is by connecting a new file server to the LAN. However, this is a relatively expensive solution, as an entire file server must be purchased. An alternative method of increasing storage capacity is by adding hard disk drives to an existing file server system. Normally, the hard disk drives of a file server system are arranged in logical volumes. Presently, to avoid taking a file server off-line in a LAN, a newly added hard disk drive is configured as a new, distinct volume because it cannot simply be added to the array configuration in a RAID4 or RAID5 configuration because the network operating systems cannot handle on-line logical volume size changes. Therefore, the new drive or drives cannot be added to the existing array and if a fault tolerance scheme for the new drive or drives is to be used, a new logical volume is defined and some of the new logical drives in the new volume would have to be used for redundancy purposes. The newly added redundant drives do not add to the total storage capacity of the file server, thereby decreasing efficiency.
An alternative method of adding a drive to an array configured as a RAID4 or RAIDS array is to use a backup-reconfigure-restore process. This allows newly-added hard disk drives to form a larger logical volume. The process requires taking the file server off-line, backing up the data stored on existing hard disk drives onto tape, reconfiguring the physical disk drives, including the new disk drives, into a new logical volume, restoring data from the tape back onto the reconfigured logical volumes and placing the file server back on-line. One major disadvantage of the backup-reconfigure-restore process is that the file server must be taken off-line, thereby rendering the data on the file server unavailable. Another disadvantage is that the backup-reconfigure-restore process requires a large amount of time to perform.
It is thus desired that a solution be developed to overcome the problems encountered in adding a disk drive or drives to an existing RAID4 or RAID5 array so that the drives could be added while the file server is on-line.
In the ensuing description of the preferred embodiment of the present invention, the terminology used is defined as follows. When a disk array is reconfigured by either adding a disk drive or removing one, data in the disk array is rearranged. A source logical volume is reconfigured to a destination logical volume, i.e., data in the source logical volume is transferred to the destination logical volume. Thus, the source logical volume refers to the logical volume defined on the original set of drives. The destination logical volume refers to the logical volume defined on the new set of disk drives. Disk array reconfiguration refers to the process of changing the number of drives allocated to an existing logical volume while keeping the logical volume size unchanged. Disk array expansion is a subset of disk array reconfiguration and refers to the process of adding a new drive or drives to an existing disk array. A new logical volume refers to the logical volume created in the excess space resulting from adding drives to the existing disk array. It is also noted that more than one logical volume can be present in a given disk array.